<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/12/27
  Time: 10:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>关键字搜索</title>
    <style>
        li{
            list-style: none;
        }
        #d{
            border: 1px solid #1938ed;
            width: 300px;
            border-top-width: 0px;
            padding: 10px;
            max-height: 200px;
            overflow: auto;
            display: none;
        }
    </style>
    <script>
        function query(){
            let spell = document.getElementById("spell").value;
            let d = document.getElementById("d");

            // 每次进入方法时,清除原有的记录
            d.innerHTML = "";

            // 如果用户没有输入任何数据,则不需要进行查询
            if(spell == ""){
                d.style.display = "none";
                return;
            }

            let xhr = new XMLHttpRequest();
            xhr.onreadystatechange=function(){
                if(xhr.readyState == 4 && xhr.status == 200){
                    let result = xhr.responseText;
                    let datas = eval("("+result+")");
                    if(datas.length == 0){
                        d.style.display = "none";
                        return;
                    }
                    d.style.display = "block";
                    for(let i = 0; i < datas.length; i++){
                        d.innerHTML = d.innerHTML + "<li>"+datas[i].message+"</li>";
                    }
                }
            };
            xhr.open("get","${pageContext.request.contextPath}/query?spell="+spell,true);
            xhr.send(null);
        }
    </script>
</head>
<body>
<!--
    关键字搜索需求:
    当用户在输入框中输入数据后,键盘上的键松开时触发事件
    根据用户输入的内容去数据库中查询t_data表,使用模糊查询
    用户输入的内容与数据库中spell字段或者message匹配则返回对应的内容
    即:使用模糊查询满足匹配spell或者message即可
    在输入框下方显示的是表中message的信息
-->
<input id="spell" type="text" style="width: 322px;" onkeyup="query()">
<div id="d">
    <%--<li>aaa</li>--%>
</div>
</body>
</html>
